Socket Setup
WebSocket Integration
Overview
This section explains how to integrate with Atenxion's post-login WebSocket endpoints using Socket.IO.
Setup For JavaScript
1. Install Required Packages
npm install axios socket.io-client
2. Socket.IO Client Setup
import { io } from 'socket.io-client';
const socket = io('https://api-qa.brillar.ai', {
transports: ['websocket'],
});
3. Authentication
All WebSocket events require an authorization token in the data payload:
{
authorizationToken: token
}
Socket Events Implementation
1. User Login
// Emit login event
socket.emit('user-login', {
userId,
agentId,
authorizationToken: token,
});
// Listen for success response
socket.on('user-login-success', ({ sessionId, userId, agentId }) => {
console.log('Login success:', sessionId);
});
// Listen for failure response
socket.on('user-login-fail', ({ sessionId, userId, agentId, error }) => {
console.error('Login failed:', error);
});
2. Create Transaction
// Emit transaction event
socket.emit('new-transaction', {
userId,
agentId,
transaction,
authorizationToken: token,
});
// Listen for success response
socket.on('new-transaction-success', ({ sessionId, userId, agentId }) => {
console.log('Transaction success');
});
// Listen for failure response
socket.on('new-transaction-fail', ({ sessionId, userId, agentId, error }) => {
console.error('Transaction failed:', error);
});
3. User Logout
// Emit logout event
socket.emit('user-logout', {
userId,
agentId,
authorizationToken: token,
});
// Listen for success response
socket.on('user-logout-success', ({ sessionId, userId, agentId }) => {
console.log('Logout success');
});
// Listen for failure response
socket.on('user-logout-fail', ({ sessionId, userId, agentId, error }) => {
console.error('Logout failed:', error);
});
Setup For Python
1. Install Required Packages
pip install requests python-socketio
2. Socket.IO Client Setup
import socketio
sio = socketio.Client()
@sio.event
def connect():
print("Connected to socket server.")
@sio.event
def disconnect():
print("Disconnected from socket server.")
sio.connect("https://api-qa.brillar.ai", transports=["websocket"])
Socket Events Implementation
1. User Login
@sio.on("user-login-success")
def on_login_success(data):
print("Login success:", data)
@sio.on("user-login-fail")
def on_login_fail(data):
print("Login failed:", data)
sio.emit("user-login", {
"userId": user_id,
"agentId": agent_id,
"authorizationToken": token
})
2. Create Transaction
@sio.on("new-transaction-success")
def on_tx_success(data):
print("Transaction success:", data)
@sio.on("new-transaction-fail")
def on_tx_fail(data):
print("Transaction failed:", data)
sio.emit("new-transaction", {
"userId": user_id,
"agentId": agent_id,
"transaction": {
"amount": 100,
"description": "Top-up"
},
"authorizationToken": token
})
3. User Logout
@sio.on("user-logout-success")
def on_logout_success(data):
print("Logout success:", data)
@sio.on("user-logout-fail")
def on_logout_fail(data):
print("Logout failed:", data)
sio.emit("user-logout", {
"userId": user_id,
"agentId": agent_id,
"authorizationToken": token
})
Summary of Socket Events
| Event (Emit) | Required Fields | Success Event | Failure Event |
|---|---|---|---|
| user-login | userId, agentId, authorization Token | user-login-success | user-login-fail |
| new-transaction | userId, agentId, transaction, authorization Token | new-transaction-success | new-transaction-fail |
| user-logout | userId, agentId, authorizationToken | user-logout-success | user-logout-fail |